/*************************************************************************
	> File Name: index.c
	> function: 语音听写(iFly Auto Transform)技术能够实时地将语音转换成对应的文字。
	> Author:卢孙远(Simon)
	> company: GDOU
	> Mail: lsy476941913@live.com 
	> Created Time: 2017年03月28日 星期二 12时33分36秒
 ************************************************************************/
#include "index.h"

int main(int argc, char* argv[])
{
	system("rm msc -rf");
	system("cp .msc msc -rf"); //重新替换msc目录，更新日志文件，msc调试文件，识别的资源文件

	const char *login_config = "appid = 592d1af2"; //登录参数，app资源id，与开放平台的资源id相同。
	UserData asr_data;
	int ret = 0;

	ret = MSPLogin(NULL, NULL, login_config); //第一个参数为用户名，第二个参数为密码，传NULL即可，第三个参数是登录参数
	if (MSP_SUCCESS != ret) {
		printf("登录失败：%d\n", ret);
		goto exit;
	}

	memset(&asr_data, 0, sizeof(UserData));
	// 第一次使用某语法进行识别，需要先构建语法网络，获取语法ID
	// 之后使用此语法进行识别，无需再次构建
	printf("构建离线识别语法网络...\n");
	if (build_grammar(&asr_data) != MSP_SUCCESS) {
		printf("构建语法调用失败！\n");
		goto exit;
	}

	while (1 != asr_data.build_fini)
		usleep(200 * 1000);
	if (MSP_SUCCESS != asr_data.errcode)
		goto exit;
	printf("离线识别语法网络构建完成，开始识别...\n");

	if ((ret = run_asr(&asr_data)) != MSP_SUCCESS) {
		printf("离线语法识别出错: %d \n", ret);
		goto exit;
	}
exit:
	MSPLogout();
	printf("语音识别完毕.\n");
	return 0;
}
